//--------------------------------------------------
/**
 *
 *      Hand Gesture Recognition System
 *
 */
//--------------------------------------------------
/**
 * //CXCORELIB CLASS//
 * Librería WRAP de la clase OpenCV cxcoreLib
 *
 * @author Wilson Sarmiento & Edwin Cobos & Cesar Murcia
 * @version cxcoreLib_v0.5
 *
 * Revisado: PENDIENTE
 */
//--------------------------------------------------
//PACKAGE//
package OpenCV;
//IMPORT//
/**
 * Import
 */
import com.sun.jna.Library;
import com.sun.jna.Pointer;
import OpenCV.cv.Mat;
import OpenCV.cv.Scalar;

//--------------------------------------------------
/**
 *cxcoreLib Library
 */
public interface cxcoreLib extends Library
{
    public Pointer cvCreateImage(cv.Size size, int depth, int channels );
    public void cvSub(Pointer src1, Pointer src2, Pointer dst, Pointer mask);
    public void cvConvertScale(Pointer src, Pointer dst, double scale, double shift);
    public void cvAbsDiff(Pointer src1, Pointer src2, Pointer dst);
    public Pointer cvCloneImage(Pointer image);
    public void cvSetZero(Pointer arr);
    public void cvCopy(Pointer src, Pointer dst, Pointer mask);
    public void cvReleaseImage(Pointer image);
    public void cvSplit(Pointer src, Pointer dst0, Pointer dst1, Pointer dst2, Pointer dst3);
    public double cvGetReal2D(Pointer arr, int idx0, int idx1);
    public void cvSetReal2D(Pointer arr, int idx0, int idx1, double value);
    public void cvMerge(Pointer src0, Pointer src1, Pointer src2, Pointer src3, Pointer dst);
    public Scalar cvGet2D( Pointer arr, int idx0, int idx1 );
    public void cvAdd(Pointer src1, Pointer src2, Pointer dst, Pointer mask);
    public Mat cvCreateMatHeader(int rows, int cols, int type);
    public Mat cvCreateMat(int rows, int cols, int type);
    public void cvSet(Mat arr, Scalar value, Pointer mask);
    public Scalar cvAvg(Pointer arr, Pointer mask);
    public void cvAvgSdv(Pointer arr, Scalar mean, Scalar stdDev, Pointer mask);    
    public void cvAbsDiffS(Pointer src, Pointer dst, Scalar value);
    public void cvAddS(Pointer src, Scalar value, Pointer dst, Pointer mask);    
    public double cvmGet(Pointer arr, int row, int col);
    public void cvmSet(Pointer arr, int row, int col, double value);
    public void cvSet2D(Pointer arr, int idx0, int idx1, Scalar value);
    public double cvInvert(Pointer src, Pointer dst, int method);    
}
//--------------------------------------------------